home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / games / addition / addition.bas < prev    next >
BASIC Source File  |  2000-07-08  |  7KB  |  353 lines

  1. screen 0,2,1,1
  2. window(0,0,511,511)
  3. /*
  4. sp_init()
  5. sp_xinit()
  6. sp_clr(0,255)
  7. sp_disp(1)
  8. sp_on(0,127)
  9. spfile_def("addsp.SP", 0)
  10. palfile_def("addsp.PAL", 1)
  11. /*
  12. /*
  13. /*
  14. str dummy
  15. dim char k(4,11),spmap(4,11),sp(63)
  16. char blk,next_blk,col,next_col
  17. dim char se0(4687),se1(4687),se2(2092),se3(8295),se4(5931)
  18. dim char go(15)= {&H26,&h20,&h2c,&h24,&h0f,&h2e,&h35,&h24,&h31}
  19. dim char push(10)={&h2f,&h34,&h32,&h27,&h0f,&h32,&h33,&h20,&h31,&h33}
  20. dim char bgm_op(1500),p_stop(12),bgm0(5361),bgm1(701)
  21. char MODE
  22. char COUNT=8
  23. int spr,pcm_fp,fm_fp
  24. int score=0
  25. int x, y, ni
  26. int block_pd,next_block_pd
  27. int l,i,j,lp,fp
  28. /*
  29. /*
  30. /*
  31. fm_fp=fopen("OPM","w")
  32. fp=fopen("adop.zmd","r")
  33. fread(bgm_op,1500,fp)
  34. fclose(fp)
  35. fp=fopen("ps.zmd","r")
  36. fread(p_stop,12,fp)
  37. fclose(fp)
  38. fp=fopen("ne1.zmd","r")
  39. fread(bgm0,5361,fp)
  40. fclose(fp)
  41. fp=fopen("ec.zmd","r")
  42. fread(bgm1,701,fp)
  43. fclose(fp)
  44. /*
  45. pcm_fp=fopen("PCM","w")
  46. fp=fopen("se0.pcm","r")
  47. fread(se0,4687,fp)
  48. fclose(fp)
  49. fp=fopen("se1.pcm","r")
  50. fread(se1,4687,fp)
  51. fclose(fp)
  52. fp=fopen("se2.pcm","r")
  53. fread(se2,2092,fp)
  54. fclose(fp)
  55. fp=fopen("se3.pcm","r")
  56. fread(se3,8295,fp)
  57. fclose(fp)
  58. fp=fopen("se4.pcm","r")
  59. fread(se4,5931,fp)
  60. fclose(fp)
  61. /*
  62. /*************************************************** メイン
  63. /*
  64. v_priority( "TSG", "10")
  65. while 1
  66.   ar_init()
  67.   MODE = 1 - title()
  68.   if MODE = -1 then exit()
  69.   main()
  70. endwhile
  71. /*
  72. /*************************************************** ゲーム用意
  73. /*
  74. func main()
  75. x = 2
  76. y = 0
  77. ni = 0
  78. spr = 0
  79. /*
  80. vpage(0) /* 画面真っ黒
  81. apage(0)
  82. apic_load("adbg0.PIC")
  83. apage(1)
  84. box(87,39,168,232,&h20)
  85. box(86,38,169,233,&h20)
  86.  
  87. for l=64 to 82:sp_set(l, 0, 0, 0):next
  88. for l=0 to 9
  89.   sp_set(69 + l, l * 16 + 66, 128, &h400 + push(l))
  90. next
  91. /*
  92. sp_set(68,  63, 24, &h42d) /* NEXT
  93. sp_set(67,  79, 24, &h424)
  94. sp_set(66,  95, 24, &h437)
  95. sp_set(65, 111, 24, &h433)
  96. /*
  97. blk = block()
  98. col = b_col()
  99. next_blk = block()
  100. next_col = b_col()
  101. /*
  102. if MODE then next_col=col
  103. block_pd = col * &h100 + blk
  104. sp_set(0, 135, 24, block_pd)
  105. for l=0 to 9 : sp_set(69 + l, l * 16 + 66, 128, &h400 + push(l)) : next
  106. vpage(3) /* 画面開けます
  107. while strig(1)=0 and asc(inkey$(0))<>&h20 : endwhile
  108. for l=69 to 82:sp_set(l, 0, 0, 0):next
  109. /*
  110. sp_set(0, 135, 40, block_pd)
  111. next_block_pd = next_col * &h100 + next_blk
  112. sp_set(64, 135, 24, next_block_pd)
  113. fwrite(se4,5931,pcm_fp)
  114. fwrite(bgm0,5361,fm_fp)
  115. wait(60)
  116. /*
  117. /*************************************************** ゲーム開始
  118. /*
  119. score=0
  120. while 1
  121.   locate 21,1:print using "#####,@";score,"億点"
  122.   spr=0
  123. iocs(3,0)
  124.   while 1
  125.     if sp(spr)=0 then break else spr=spr+1
  126.   endwhile
  127.   sp_set(spr, 135, 40, block_pd)
  128.  if k(2,0) then gameover():break
  129.   for y=0 to 11
  130.     for l=0 to 2
  131.       wait(COUNT)
  132.       lp = joy()
  133.       sp_set(spr, x * 16 + 103, y * 16 + 55, block_pd)
  134.       if lp then break
  135.     next
  136.        if y=11 then add(y):break
  137.        if k(x,y+1) then ni = add(y):break
  138.        if k(x,y)=0 then sp_set(spr, x * 16 + 103, y * 16 + 55, block_pd)
  139.    next
  140. /*
  141. blk = next_blk
  142.   col = next_col
  143.   next_blk = block()
  144.   next_col = b_col()
  145.   if MODE then next_col=col
  146.   if ni and MODE=0 then next_blk = 2 : ni = 0
  147.   block_pd = next_col * &h100 + next_blk
  148.   sp_set(64, 135, 24, block_pd)
  149.   block_pd = col * &h100 + blk
  150.   x = 2
  151. endwhile
  152. endfunc
  153. end
  154. /*
  155. /*************************************************** 消えるかな?
  156. /*
  157. func add(y)
  158. int ret
  159. k(x,y)=blk
  160. spmap(x,y)=spr
  161. sp(spr)=col
  162. if y>=10 then return(0)
  163. if (k(x,y)+k(x,y+1))=k(x,y+2) then ret = block_clr():return(ret)
  164. if abs(k(x,y)-k(x,y+1))=k(x,y+2) then ret = block_clr():return(ret)
  165. return(0)
  166. endfunc
  167. /*
  168. /*************************************************** 消します
  169. /*
  170. func block_clr()
  171. int ret = 0
  172. fwrite(se0,4687,pcm_fp)
  173. for l=7 to 14
  174.   for j=0 to 2
  175.    sp_set(spmap(x,y+j), x * 16 +103, (y+j) * 16 + 55, &h510+l)
  176.    v_disp()
  177.   next
  178. next
  179. /*
  180. if sp(spmap(x,y)) = sp(spmap(x,y+1)) then if sp(spmap(x,y+1)) = sp(spmap(x,y+2)) then ret = -1
  181. score = score + k(x,y) + k(x,y+1) + k(x,y+2)
  182. /*
  183. for i=0 to 2
  184.   k(x,y+i)=0
  185.   sp_set(spmap(x,y+i), 0, 0, &h100)
  186.   sp(spmap(x,y+i))=0
  187.   spmap(x,y+i)=0
  188. next
  189. return(ret)
  190. endfunc
  191. /*
  192. /*************************************************** キー入力
  193. /*
  194. func joy()
  195. char stk
  196. str kb
  197. int ret=0
  198. /*
  199. stk = stick(1)
  200. kb = inkey$(0)
  201. if asc(kb) then iocs(3,0)
  202. if asc(kb)=&h1b then exit()
  203. /*
  204. if stk = 0 then {
  205.   switch asc(kb)
  206.     case &h1e : stk = 8 : break
  207.     case &h38 : stk = 8 : break
  208.     case &h1c : stk = 6 : break
  209.     case &h36 : stk = 6 : break
  210.     case &h1d : stk = 4 : break
  211.     case &h34 : stk = 4 : break
  212.     case &h1f : stk = 2 : break
  213.     case &h32 : stk = 2 : break
  214.   endswitch
  215. }
  216. /*
  217. switch stk
  218.   case 2:ret = +1
  219.          break
  220.   case 8:if y=11 then break
  221.          if k(x,y+1) then break
  222.          ret = -1
  223.          break
  224.   case 4:if x=0 then break
  225.          if k(x-1,y) then break
  226.          x=x-1
  227.          v_disp()
  228.          break
  229.   case 6:if x=4 then break
  230.          if k(x+1,y) then break
  231.          x=x+1
  232.          v_disp()
  233.          break
  234. endswitch
  235. return(ret)
  236. endfunc
  237. /*
  238. /*************************************************** 数字決定
  239. /*
  240. func block()
  241. int rt
  242. rt = rand() mod 7 + 3
  243. return(rt)
  244. endfunc
  245. /*
  246. /*************************************************** カラー決定
  247. /*
  248. func b_col()
  249. int rt
  250. rt = rand() mod 3 + 1
  251. return(rt)
  252. endfunc
  253. /*
  254. /*************************************************** WAIT
  255. /*
  256. func wait(loop)
  257. int i
  258. for i=0 to loop
  259.   v_disp()
  260. next
  261. endfunc
  262. /*
  263. /*************************************************** ゲームオーバー
  264. /*
  265. func gameover()
  266. cls
  267. sp_set(spr, 0, 0, block_pd)
  268. for i=0 to 14
  269.   for y=0 to 11
  270.     for x=0 to 4
  271.       if k(x,11-y) then {
  272.        sp_set(spmap(x,11-y), x * 16 +103, (11 - y) * 16 + 55, &h610 + i)
  273.       }
  274.     next
  275.   next
  276.   fwrite(se1,4687,pcm_fp)
  277.   wait(1)
  278. next
  279. /*
  280. fwrite(bgm1,701,fm_fp)
  281. for j=0 to 8
  282.   sp_set(64 + j, j * 16 + 72, 128, &h400 + go(j))
  283. next
  284. /*
  285. wait(300)
  286. endfunc
  287. /*
  288. /*************************************************** 初期化
  289. /*
  290. func ar_init()
  291. int x,y,i
  292. for x=0 to 4
  293.   for y=0 to 11
  294.     k(x,y)=0
  295.     spmap(x,y)=0
  296.   next
  297. next
  298. for i=0 to 63:sp(i)=0:next
  299. endfunc
  300. /*
  301. /*************************************************** タイトル画面
  302. /*
  303. func title()
  304. dim char nrm(6)={&h2d,&h2e,&h31,&h2c,&h20,&h2b}
  305. dim char trp(6)={&h33,&h31,&h28,&h2f,&h2b,&h24}
  306. dim char ext(6)={&h0f,&h24,&h37,&h28,&h33,&h0f}
  307. int i,l,tg
  308. vpage(0) /* 画面真っ黒
  309. apage(0)
  310. apic_load("title.pic")
  311. apage(1)
  312. wipe()
  313. /*
  314. for i=0 to 5
  315.   sp_set(64 + i, 96 + i * 16, 152, &h400 + nrm(i))
  316.   sp_set(70 + i, 96 + i * 16, 176, &h400 + trp(i))
  317.   sp_set(76 + i, 96 + i * 16, 200, &h400 + ext(i))
  318. next
  319. vpage(3) /* 画面開けます
  320. /*
  321. i = 0
  322. y = 0
  323. x = 2
  324. /*
  325. fwrite(bgm_op,1500,fm_fp)
  326. while 1
  327.   sp_set( 82, 72, 152 + y * 24, &hb40)
  328.   tg = joy()
  329.   if tg = -1  and y>0 then y=y-1:wait(5):fwrite(se2, 2092, pcm_fp)
  330.   if tg = +1  and y<2 then y=y+1:wait(5):fwrite(se2, 2092, pcm_fp)
  331.   if strig(1) then break
  332.   if asc(inkey$(0))=&h20 then break
  333.   wait(3)
  334. endwhile
  335. /*
  336. fwrite(p_stop,12,fm_fp)
  337. fwrite(se3,8295,pcm_fp)
  338. for l=0 to 47
  339.   i = (i + 1) and 3
  340.   wait(1)
  341.   sp_set( 82, 72, 152 + y * 24, &hb40 + i)
  342. next
  343. /*
  344. sp_set( 82,,, &hb40)
  345. if y=0 then for l=70 to 81:sp_set( l, 0, 0, 0):next
  346. if y=1 then for l=64 to 69:sp_set( l, 0, 0, 0):sp_set( l + 12, 0, 0):next
  347. if y=2 then for l=64 to 75:sp_set( l, 0, 0, 0):next
  348.  
  349. return(y)
  350. endfunc
  351. end
  352.  
  353.